MSG LEFT BY: TRYSTAN II THIS AND THE FOLLOWING MESSAGE ARE BOTH FORMATTED FOR 80 COLUMNS. BE SURE TO USE THE VIDEO COMMAND TO CHANGE YOUR SCREEN WIDTH! THRESHOLD IS THE FIRST GAME PROGRAM WHICH USES DISK ACCESS DURING PLAY THAT I HAVE BEEN ABLE TO CRACK. I HOPE THE TECHNIQUE DESCRIBED BELOW WILL ENABLE SOME OF THE OTHER DISK-BASED GAMES TO UNFOLD THEIR MANIFEST CHARMS TO THE WORLD OF DOS 3.3! FIRST, THE SIMPLE PART--THAT OF GETTING THE MAIN CODE INTO A NORMAL DOS 3.3 BINARY FILE: 1) BOOT THRESHOLD NORMALLY. WHEN YOU GET TO THE POINT WHERE IT ASKS YOU WHETHER YOU WANT TO USE PADDLES OR KEYBOARD, PRESS RESET. THIS IS WHERE THE GAME WILL START ONCE IT'S BROKEN. THE LOGO IS NICE, BUT USELESS AND, SINCE THRESHOLD USES RAM FROM $800 TO $B600, YOU DON'T HAVE ROOM TO LOAD IT WITH NORMAL DOS. 2) YOU NOW HAVE TO SAVE EVERYTHING IN MEMORY FROM 0 TO $98FF, EXCEPT FOR HI-RES PAGE 1 ($2000-$3FFF). SAVING PAGES 0-7 IS THE HARDEST, SINCE RESET LIKES TO WALK ALL OVER VARIOUS PARTS OF IT. BECAUSE OF THIS, YOU NEED TO USE SOMETHING TO RELOCATE THE FIRST 8 PAGES OF MEMORY UP TO A LOCATION LIKE $1000 OR SO, WHICH WILL ENABLE YOU TO RE-BOOT NORMAL DOS WITHOUT WIPING IT OUT. I USED MASTER KEY+ TO SAVE ALL THE PARTS, INCLUDING PAGE 0-7. FROM WHAT I GATHER, ONE OF THE TWO CRACKING ROMS IN THE DOWNLOAD SECTION WILL ALSO RELOCATE PAGES 0-7 UPON HITTING RESET. 3) ONCE YOU HAVE SAVE PAGES 0-7, YOU NEED TO RE-BOOT THRESHOLD IN ORDER TO SAVE PAGES 8 THRU $97 ($800-$97FF). THIS IS A BIT EASIER, BUT YOU HAVE TO REMEMBER TO MOVE PAGE 8 OUT OF THE WAY BEFORE YOU RE-BOOT NORMAL DOS BECAUSE IT GETS CLOBBERED. YOU SHOULD DO THIS IN TWO STAGES IN ORDER TO MAKE THE RELOCATION PROCESS (DESCRIBED BELOW) EASIER. I FIRST SAVED $800-$1FFF, THEN RE-BOOTED THRESHOLD, AND MOVED $4000-$97FF DOWN TO $2000 BEFORE SAVING IT. 4) NOW ALL YOU DO IS BLOAD THE THREE PIECES LIKE SO: A) BLOAD THE $800-$1FFF FILE AT $800 B) BLOAD THE PAGE 0-7 FILE AT $2000 C) BLOAD THE $4000-$97FF FILE AT $2800 THE PROGRAM NOW RESIDES IN MEMORY FROM $800-$80FF. THE ONLY THING LEFT IS TO WRITE A LITTLE ASSEMBLY LANGUAGE ROUTINE TO RELOCATE PAGES 0-7 AND $2800-$80FF TO THEIR PROPER ADDRESSES. HINT: USE THE MOVE ROUTINES IN THE MONITOR! I PUT MY CODE RELOCATOR AT $8100 AND ADDED A JUMP TO IT AT $7FD. FINALLY, ADD A JUMP TO THE STARTING ADDRESS OF $6B00 AT THE END OF YOUR RELOCATION ROUTINE. THEN, A BSAVE THRESHOLD,A$7FD,L$7A03 WILL SAVE IT ALL IN ONE EXECUTABLE CHUNK. BY USING A LENGTH OF $7A03, YOU GIVE YOURSELF 255 BYTES IN WHICH TO WRITE YOUR RELOCATION CODE. THE TECHNIQUE OF PULLING THE PIECES OF THE DISK ACCESSED DURING PLAY FOLLOWS IN THE NEXT MESSAGE. THE MOST DIFFICULT PART OF CRACKING THRESHOLD IS SAVING THE VARIOUS BITS AND PIECES OF THE DISK THAT IT ACCESSES DURING PLAY. THE CODE STARTING AT $9383 SETS UP THE IOB AND CALLS THE RWTS TO LOAD IN 3 SEPARATE "FILES" EACH TIME YOU ADVANCE TO A NEW LEVEL. FORTUNATELY, THE RWTS IN THRESHOLD IS NOT TOO HEAVILY MODIFIED, SO YOU CAN USE THE INSPECTOR TO READ THE THRESHOLD DISK. BEFORE YOU START READING THE THRESHOLD DISK, YOU WILL HAVE TO CHANGE LOCATION $3D9 TO JUMP TO THE RWTS AT $B7B5 (I.E. 3D9:4C B5 B7) AND THEN CHANGE THE RESET VECTOR TO JUMP TO SOME INNOCUOUS LOCATION SO THAT YOU CAN RESET OUT OF THE INSPECTOR. STARTING AT $9383, YOU WILL FIND 3 CALLS TO $7AB0 (WHICH, IN TURN, CALLS THE RWTS). JUST BEFORE EACH OF THESE CALLS, THE IOB IS SET UP WITH THE STARTING TRACK/SECTOR, THE LOAD ADDRESS AND THE NUMBER OF SECTORS TO READ. THE TRACK/SECTOR TABLE IS AT $65D0-$65F3. HERE IS WHAT IT LOOKS LIKE: 65D0:03 05 07 09 0C 0E 00 04 65D8:08 0C 03 07 12 12 13 13 65E0:14 15 00 08 03 0B 06 01 65E8:16 16 16 16 16 16 00 02 65F0:04 06 08 0A THE FIRST 6 BYTES ARE THE TRACK NUMBERS FOR THE FIRST "FILE" FOR EACH OF THE SIX LEVELS. THE NEXT SIX BYTES ARE THE CORRESPONDING SECTOR NUMBERS FOR THE FIRST "FILE". THE NEXT SET OF TWELVE BYTES ARE FOR THE SECOND "FILE" AND THE THIRD SET IS FOR THE LAST OF THE THREE "FILES". FOR EXAMPLE, WHEN YOU START THRESHOLD, YOU ARE AT LEVEL ONE. THE 3 FILES START AT T3-S0, T12-S0 AND T16-S0, RESPECTIVELY. AT LEVEL TWO, THE 3 FILES START AT T5-S4, T12-S8 AND T16-S2. THE VALUES ABOVE ARE NOT WHAT YOU WILL SEE ON YOUR THRESHOLD DISK. THEY ARE THE LOCATIONS I USED TO SAVE THE FILES ONTO NORMAL DOS. THE INTERPRETATION OF THE TABLE IS THE SAME, HOWEVER. THE NUMBER OF SECTORS TO READ FOR EACH OF THE THREE "FILES" ARE AT LOCATIONS $93A1, $93C7 AND $93ED RESPECTIVELY. THE TOTAL IS 240 SECTORS! USE THE INSPECTOR TO READ IN EACH OF THE 18 (6 LEVELS * 3 FILES) "FILES", ONE AT A TIME, AND THEN RE-BOOT NORMAL DOS AND WRITE THEM BACK OUT. YOU WILL HAVE TO USE A SECTOR EDITOR TO MODIFY THE VTOC OF YOUR TARGET DISK BECAUSE THEY WILL NOT EXIST AS NORMAL DOS FILES. IN ORDER TO PREVENT THEM FROM ACCIDENTAL ERASURE, YOU SHOULD FLAG THOSE SECTORS IN THE VTOC AS BEING IN USE. I FOUND DISK FIXER TO BE THE EASIEST FOR THIS PURPOSE. YOU COULD, OF COURSE, MAKE THESE NORMAL DOS FILES, BUT THEN YOU WOULD HAVE TO MODIFY THE MAIN CODE TO READ FILES INSTEAD OF A SERIES OF SECTORS. CHALK IT UP TO LAZINESS ON MY PART COUPLED WITH THE FACT THAT THE PROGRAM RUNS FASTER IF IT DOESN'T HAVE TO GO THRU THE DOS FILE MANAGER! HOPE THIS HELPS. === TRYSTAN II ===